home *** CD-ROM | disk | FTP | other *** search
- #include "chat.h"
- #include <libraries/dos.h>
-
- extern int LocalLog;
- extern struct MsgPort *port;
- extern struct MsgPort *replymp;
- extern struct JHMessage *Jhmsg,*msg;
-
- extern enum MainArg mainarg;
-
- extern struct MsgPort *myport, *repport, *otport[NODENUM];
- extern struct MSMes mymes, mesbuf, *otmes;
-
- extern FILE *str;
- extern char mynm[NAMELEN], otnm[NODENUM][NAMELEN], fname[100], mainline[100];
- extern char myportnm[10], repportnm[20];
- extern char dispbuf[100], inkey[100];
- extern int i, j, in, mynd, dnd, col, otno, inpt, elnfl, nmfl;
-
- disp( s, rnd )
- char *s;
- {
- int i, j, sp;
- char tmp[100];
-
- i = 0;
- if( dnd != rnd ) {
- newln( rnd );
- if( s[i] == CR ) i++;
- };
- tmp[1] = 0;
- for( ; s[i]; i++ ) {
- tmp[0] = s[i];
- if( tmp[0] >= ' ' ) {
- if( col >= 79 ) {
- if( tmp[0] == ' ' ) {
- cr();
- col = 0;
- nmfl = 0;
- continue;
- };
- for( j = 78; dispbuf[j] != ' ' && j; j-- );
- sp = j;
- if( sp > 49 ) {
- bsn( 79 - sp );
- cr();
- while( dispbuf[sp] == ' ' && sp < 79 ) sp++;
- dispbuf[79] = 0;
- sm0( &dispbuf[sp] );
- col = 79 - sp;
- nmfl = 0;
- sm0( tmp );
- dispbuf[col++] = tmp[0];
- }
- else {
- cr(); col = 0; nmfl = 0;
- sm0( tmp );
- dispbuf[col++] = tmp[0];
- };
- }
- else {
- sm0( tmp );
- dispbuf[col++] = tmp[0];
- };
- }
- else switch( tmp[0] ) {
- case BS: if( col == nmfl ) continue;
- bs(); col--; break;
- case CR: cr(); col = 0; nmfl = 0; break;
- case FF: col = 0; nmfl = 0; sm0( tmp ); break;
- case BELL: sm0( tmp ); break;
- }
- };
- return(0);
- }
-
- prlx( l )
- long l;
- {
- char temp[124];
- sprintf( temp, "%lX", l ); sm1( temp );
- return(0);
- }
-
- listother()
- {
- int i;
- char tmp[100];
-
- cr();
- switch( otno ) {
- case 0: sm1( "The Chat Room is: Empty!" ); break;
- case 1: sm2( "There Is 1 User In The Chat Room:" ); break;
- default:
- sprintf( tmp, "There Are %d Users In The Chat Room: ", otno );
- sm2( tmp );
- };
- for( i = 0; i < NODENUM; i++ ) {
- if( otport[i] == 0 ) continue;
- sm0( " " );
- sm1( otnm[i] );
- };
- cr();
- return(0);
- }
-
- MSCloseOut()
- {
- putuserstring( "\tExited AEChat\n",BB_CALLERSLOG);
- ShutDown();
- end();
- return(0);
- }
-
-
- parsemain()
- {
- int i, len;
-
- len = strlen( mainline );
- for( i = len-1; mainline[i] == ' '; i-- ) mainline[i] = 0;
- for( i = 0; mainline[i] == ' '; i++ );
- for( ; mainline[i] != ' ' && i < len; i++ );
- if( i == len ) return( NONE );
- for( ; mainline[i] == ' '; i++ );
- if( i == len ) return( NONE );
- if( stricmp( &mainline[i], "ON" ) == 0 ) return( ON );
- if( stricmp( &mainline[i], "OFF" ) == 0 ) return( OFF );
- return( ERR );
- }
-
- chatoff()
- {
- sprintf( fname, "env:STATUS@%d", mynd );
- str = fopen( fname,"w" );
- if( str != NULL ) {
- cr();
- sm2( "<Chat Requests From Other Nodes Will Be Denied!>" );
- };
- if( str == NULL ) return( 1 );
- fclose( str );
- CloseOut();
- return(0);
- }
-
- chaton()
- {
- sprintf( fname, "env:STATUS@%d", mynd );
- remove( fname );
- cr();
- sm2( "<Chat Requests From Other Nodes Will Be Accepted>" );
- CloseOut();
- return(0);
- }
-
- chathelp()
- {
- cr();
- sm2( "Usage: CHAT [ON | OFF]" );
- return(0);
- }
-